// Login JS Document
require.config({
    baseUrl: '/js/common',
    paths: {
        libs: '/js/libs'
    }
});
define(function(require){
	// 加载js
	var rs_zepto = require('libs/zepto');
    var rs_userAction = require('userAction');
	var rs_yingSoftCookie = require('yingSoftCookie');
	var rs_yingSoftPrg = require('yingSoftPrg');
	var rs_agentInfo = require('agentInfo');
	var rs_ajax = require('ajax');
    var rs_md5 = require('md5');
	var rs_dialog = require('dialog');
	var rs_storage = require('storage');
	// 初始化
    var _isClickChange = false;
    G_UserAction.loadObject();
    var userResetPassword = new userResetPsw();
	this.init = function(){
        // 初始化页面
        _setUserPage();
        // 监听滑动
        _fontSizeRangeChange();
        // 所有点击事件
        _setClickEven();
    }
    /********************************************************************************
    函数名：_setUserPage
    功能：初始化页面信息
    *********************************************************************************/
    function _setUserPage(){
        // 设置字体
        var fontSize = G_Cookie.getFontSize() || '20px';
        $('#range').val(fontSize.replace('px', ''));
        $('.answerFont span,.answerFont p').css('font-size',fontSize);
        // 设置缓存
        // if (window.ShowCacheSize) {
        //     var cacheSize = window.ShowCacheSize.cacheSize();
        //     if (cacheSize && cacheSize > 0) {
        //         $('.clearCache em i').html(cacheSize);
        //     }
        // }else{
        //     $('.clearCache em i').html('0');
        // }
    }
    /********************************************************************************
    函数名：moveRange
    功能：滑动修改字体
    ********************************************************************************/
    function moveRange() {
        var fontSize = G_Cookie.getFontSize() || '20px';
        var size = Number(fontSize.replace('px', ''));
        var rangeObj = $('#range');
        if (rangeObj) {
            size = parseInt(rangeObj.val());
        }
        if (size < 14) {
            size = '14';
        } else if (size > 26) {
            size = 26;
        }
        fontSize = size + 'px';

        if (rangeObj) {
            rangeObj.val(fontSize.replace('px', ''));
        }
        G_Cookie.setFontSize(fontSize);
        $('.answerFont span,.answerFont p').css('font-size',fontSize);
    }
    /********************************************************************************
    函数名：_fontSizeRangeChange
    功能：字体大小滑动监听事件
    ********************************************************************************/
    function _fontSizeRangeChange() {
        $('#range').on("input", function() {
            moveRange();
        });
        $('#range').on("touchmove", function() {
            moveRange();
        });
        $('#range').on("touchend", function() {
            moveRange();
        });
    }
    /********************************************************************************
    函数名：_setClickEven
    功能：所有点击事件
    *********************************************************************************/
    function _setClickEven(){
        // 修改密码
        $('.changePWD').click(function(){
            _loadUserChecked();
        });
        // 默认字体
        $('.defaultFont').click(function(){
            var fontSize = '20px';
            var rangeObj = $('#range');
            if (rangeObj) {
                  rangeObj.val(fontSize.replace('px', ''));
            }
            G_Cookie.setFontSize(fontSize);
            $('.answerFont span,.answerFont p').css('font-size',fontSize);
        });
        // 增大字体
        $('.minSize').click(function() {
            var fontSize = G_Cookie.getFontSize() || '20px';
            var size = Number(fontSize.replace('px', ''));
            var range = 3;
            if (size <= 14) {
                  G_Prg.alert('已经是最小字体了！');
                  return;
            }
            size = size - range;
            fontSize = size + 'px';
            var rangeObj = $('#range');
            if (rangeObj) {
                  rangeObj.val(fontSize.replace('px', ''));
            }
            G_Cookie.setFontSize(fontSize);
            //设置字体
            $('.answerFont span,.answerFont p').css('font-size',fontSize);
        });
        // 减小字体
        $('.maxSize').click(function() {
            var fontSize = G_Cookie.getFontSize() || '20px';
            var size = Number(fontSize.replace('px', ''));
            var range = 3;
            if (size >= 26) {
                  G_Prg.alert('已经是最大字体了！');
                  return;
            }
            size = size + range;
            fontSize = size + 'px';
            var rangeObj = $('#range');
            if (rangeObj) {
                  rangeObj.val(fontSize.replace('px', ''));
            }
            G_Cookie.setFontSize(fontSize);
            //设置字体
            $('.answerFont span,.answerFont p').css('font-size',fontSize);
        });
        // 修改密码
        $('.changeUserpwd a').unbind('click').click(function () {
            G_UserAction.addUserAction('resetPwdBtn');
            userResetPassword.resetPsw();
        });
        $('.changeUserpwd input[name=oldpwd]').blur(function () {
            $('.changeUserpwd p').html(G_Prg.checkPsw($('.changeUserpwd input[name=oldpwd]')));
        });
        $('.changeUserpwd input[name=newpwd]').blur(function () {
            $('.changeUserpwd p').html(G_Prg.checkPsw($('.changeUserpwd input[name=newpwd]')));
            if(!$('.changeUserpwd p').html()){
                userResetPassword.checkNewPsw();
            }
        });
        $('.changeUserpwd input[name=repwd]').blur(function () {
            $('.changeUserpwd p').html(G_Prg.checkPsw($('.changeUserpwd input[name=repwd]')));
            if(!$('.changeUserpwd p').html()){
                userResetPassword.checkNewPsw();
                return;
            }
        });

        // 清除缓存
        $('.clearCache').click(function(){
            var browser={    
                versions:function(){            
                    var u = navigator.userAgent, app = navigator.appVersion;            
                    return {       
                        android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器                
                        iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1, //是否为iPhone或者QQHD浏览器                
                        iPad: u.indexOf('iPad') > -1, //是否iPad          
                    };
                }()
            };
            if(browser.versions.iPhone || browser.versions.iPad){
                parent.window.location.href = "iosc://"+'CleanSize';
                // window.android.clearCacheFolder('123');
            }else if(browser.versions.android){
                window.android.cleanCacheFolder('qinghuancun');
            }else{
                G_Prg.alert('成功清除缓存！');
                // window.android.cleanCacheFolder('qinghuancun');
                return;
            }
            // var cacheSize = $('.clearCache em i').html();
            // if(cacheSize && cacheSize > 0){
            //     G_Prg.confirm('您确定清除缓存吗？',function(){
            //         if (cacheSize && cacheSize > 0) {
            //             parent.window.location = "ios://iOSCleanCookies";
            //             G_Prg.alert('清空缓存成功');
            //             $('.clearCache em i').html('0');
            //         }
            //     });
            // }
        });
        // // 注销登录
        // $('.loginOut').click(function(){
        //     var browser={    
        //         versions:function(){            
        //             var u = navigator.userAgent, app = navigator.appVersion;            
        //             return {       
        //                 android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器                
        //                 iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1, //是否为iPhone或者QQHD浏览器                
        //                 iPad: u.indexOf('iPad') > -1, //是否iPad          
        //             };
        //         }()
        //     };
        //     if(browser.versions.iPhone || browser.versions.iPad){
        //         parent.window.location.href = "iosd://"+'CleanSize';
        //     }else{
        //         //保存一些必要的Cookie
        //         G_Prg.confirm('您确定退出登录吗？',function(){
        //             var clientType = G_Cookie.getClientType();
        //             var iosVersion =G_Prg.getCookie('IOSVERSION');
        //             var androidVersion=G_Prg.getCookie('VERSION');

        //             G_Prg.cleanCookie();
        //             G_Cookie.removeUserID();
        //             G_Cookie.removeGuid();
        //             G_Cookie.removeUserName();
        //             G_Cookie.removeUserPwd();
                    
        //             G_Cookie.setClientType(clientType);
        //             G_Prg.setCookie('IOSVERSION',iosVersion);
        //             G_Prg.setCookie('VERSION',androidVersion);

        //             window.location.href = '/login';
        //         });
        //     }
        // });
    }
    /********************************************************************************
    函数名：_loadUserChecked
    功能：修改密码初始化
    *********************************************************************************/
    function _loadUserChecked(){
        var userID = G_Cookie.getUserID();
        if (!userID){
            G_Prg.throw('程序运行错误:userHome.onload 找不到用户Cookie！');
            window.location.href = '/doExam-index';
        }
        $('.changeUserpwd').show();
        $('.userSetting').hide();
        $('#changeAppBtn').attr('href','/userSetting');
        $('.header-title').css({'margin':'0 auto','padding':'0','text-align':'center','float':'none','padding-right':'22px'}).html('修改密码');
    }
    /********************************************************************************
    函数名：userResetPsw
    功能：用户修改密码
    *******************************************************************************/
    function userResetPsw() {
            this.checkNewPsw=function(){
                var firstPsw = $('.changeUserpwd input[name=newpwd]').val();
                var secondPsw = $('.changeUserpwd input[name=repwd]').val();
                if(firstPsw&&secondPsw&&firstPsw!==secondPsw){
                    $('.changeUserpwd p').html('*两次密码不一致');
                    // $('.changeUserpwd input[name=newpwd]').focus();
                    return;
                }
            }
            /********************************************************************************
             函数名：resetPsw
             功能：用户修改密码请求函数
             输入参数: 无
             返回值：无
             创建信息：欧聪 (2014-06-24)
             修改记录：无
             审查人：无
             *******************************************************************************/

            this.resetPsw = function () {
                var userID = G_Cookie.getUserID();
                var userName = G_Cookie.getUserName();
                if (!userID) {
                    G_Prg.alert('程序运行错误:登录状态已失效，请重新登录！', function () {
                        window.location.href = '/login';
                    });
                    return;
                }
                var oldPassword = $('.changeUserpwd input[name=oldpwd]').val();
                var newPassword = $('.changeUserpwd input[name=newpwd]').val();
                if (!oldPassword) {
                    $('.changeUserpwd p').html('*请输入密码');
                    $('.changeUserpwd input[name=oldpwd]').focus();
                    return;
                }
                if (!newPassword) {
                    $('.changeUserpwd p').html('*请输入密码');
                    $('.changeUserpwd input[name=newpwd]').focus();
                    return;
                }
                if (newPassword.length < 6 || newPassword.length > 20) {
                    $('.changeUserpwd p').html('*密码必须是6-20个字符');
                    $('.changeUserpwd p').val('');
                    $('.changeUserpwd input[name=newpwd]').focus();
                    return;
                }
                if (newPassword !== $('.changeUserpwd input[name=newpwd]').val()) {
                    $('.changeUserpwd p').html('*两次密码不一致');
                    // $('.changeUserpwd input[name=newpwd]').focus();
                    return;
                }
                $('.changeUserpwd p').html('');
                $('.changeUserpwd p').html ('');
                var oldPasswordMd5 = hex_md5(oldPassword);
                var userPasswordMd5 = hex_md5(newPassword);
                var guid = G_Cookie.getGuid();
                var URL = '/api/user/resetPassword/' + userID + '/' + oldPasswordMd5 + '/' + userPasswordMd5 + '/' + guid;
                var _success = function (json) { //G_AjaxApi.get的回调函数
                    //接收端口返回的数据,转换成json格式
                    var jsonData = JSON.parse(json);
                    if (jsonData.status === 200) {
                        //移除Guid
                        G_Cookie.removeGuid();
                        $('.changeUserpwd p').html('');
                        G_Prg.alert('密码修改成功，请您重新登录！', function () {
                            G_Cookie.removeUserPwd();
                            window.location.href = '/login';
                        });
                    } else if (jsonData.status === 201) {
                        $('.changeUserpwd p').html('*原密码输入错误');
                        $('.changeUserpwd input[name=oldpwd]').focus();
                        return;
                    } else if (jsonData.status === 300) {
                        G_Prg.throw('程序运行错误，userResetPsw.resetPsw,数据库获取数据异常');
                    } else {
                        G_Prg.throw('抱歉，不能处理 userResetPsw.resetPsw：status = "' + jsonData.status + '"！');
                    }
                }
                G_AjaxApi_Record.get(URL, false, _success);
            }
        }
    // 执行初始化
	init();
});